package com.turing.data.service.review;

import com.baomidou.mybatisplus.extension.service.IService;
import com.turing.data.model.domain.review.ReviewContent;
import com.turing.data.vo.in.review.ElementSimpleSearchVO;
import com.turing.data.vo.in.review.ScrollSearchVO;
import com.turing.data.vo.out.review.TaskElementVO;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutionException;

public interface ReviewService extends IService<ReviewContent> {

    TaskElementVO getTaskElements(ElementSimpleSearchVO searchVO);


    /**
     * 批量导出已审核的数据
     *
     * @param response  返回值对象
     * @author lcy
 * @date 2021/5/28 12:39
     **/
    void exportData( String taskSn, String templateId , HttpServletResponse response) throws IOException;

    /**
     * 从主场景复制数据
     *
     * @param taskSn    主场景任务id
     * @param newTaskSn 子场景任务id
     * @return java.lang.boolean
     * @author lcy
     * @date 2021/6/16 10:42
     **/
    boolean copyTaskContent(String taskSn, String newTaskSn);

    String runScriptsTask(String taskSn);

    List<ReviewContent> countDistinctElements(String taskSn);

    TaskElementVO getModelElements(ElementSimpleSearchVO searchVO);

    Map<Integer,List<TaskElementVO.DrawResultVO>> getTaskElementsScroll(ScrollSearchVO scrollSearchVO);


    /**
     * 导出合同
     *
     * @param response  返回值对象
     * @author pangwl
     * @date 2022年9月1日09:29:37
     **/
    void exportElementsWord( String taskSn, String templateId , HttpServletResponse response) throws ExecutionException, InterruptedException;

}
